@echo off
chcp 65001 > nul

title 创建自动提交代码计划任务

REM 避免重复提升权限
setlocal
set "ELEVATED=0"

REM 检查是否已经拥有管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %errorlevel% equ 0 (
    set "ELEVATED=1"
    goto :PROCESS
)

echo 需要管理员权限来创建计划任务...
echo 请在接下来弹出的UAC提示框中选择"是"
echo.
echo 请注意：窗口可能会短暂关闭并重新打开

REM 创建一个临时VBS脚本来提升权限
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~f0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
echo WScript.Sleep 1000 >> "%temp%\getadmin.vbs"

REM 运行VBS脚本提升权限
start "" "%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /b

:PROCESS
echo.
echo 已获得管理员权限
echo 正在准备创建计划任务...
echo.

set "TASKNAME=代码自动提交"
set "WORKDIR=%cd%"

echo 当前工作目录: %WORKDIR%
echo 计划任务名称: %TASKNAME%
echo.

echo 是否继续创建计划任务? (按任意键继续，按Ctrl+C取消)
pause

echo 删除已存在的同名任务...
schtasks /delete /tn "%TASKNAME%" /f >nul 2>&1

echo 创建新的计划任务...
schtasks /create /tn "%TASKNAME%" /tr "cmd.exe /c cd /d \"%WORKDIR%\" && git add . && git commit -m \"自动提交 - %%date%% %%time%%\"" /sc MINUTE /mo 30 /f

if %errorlevel% equ 0 (
    echo.
    echo 成功创建任务：%TASKNAME%
    echo 该任务将每30分钟运行一次，无时间限制
) else (
    echo.
    echo 创建任务失败，错误代码：%errorlevel%
)

echo.
echo 任务配置信息:
schtasks /query /tn "%TASKNAME%" /v /fo list | findstr /i "TaskName NextRunTime"

echo.
echo 操作完成！
echo.
echo 请按任意键退出...
pause 